home *** CD-ROM | disk | FTP | other *** search
/ American Osteopathic Ass…tion Yearbook 2005 & 2006 / American Osteopathic Association Yearbook 2005 & 2006.iso / mac / app / deps / encodings / utf_16.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2004-07-22  |  3.7 KB  |  74 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.3)
  3.  
  4. """ Python 'utf-16' Codec
  5.  
  6.  
  7. Written by Marc-Andre Lemburg (mal@lemburg.com).
  8.  
  9. (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
  10.  
  11. """
  12. import codecs
  13. import sys
  14.  
  15. class Codec(codecs.Codec):
  16.     encode = codecs.utf_16_encode
  17.     decode = codecs.utf_16_decode
  18.  
  19.  
  20. class StreamWriter(Codec, codecs.StreamWriter):
  21.     
  22.     def __init__(self, stream, errors = 'strict'):
  23.         self.bom_written = 0
  24.         codecs.StreamWriter.__init__(self, stream, errors)
  25.  
  26.     
  27.     def write(self, data):
  28.         result = codecs.StreamWriter.write(self, data)
  29.         if not (self.bom_written):
  30.             self.bom_written = 1
  31.             if sys.byteorder == 'little':
  32.                 self.encode = codecs.utf_16_le_encode
  33.             else:
  34.                 self.encode = codecs.utf_16_be_encode
  35.         
  36.         return result
  37.  
  38.  
  39.  
  40. class StreamReader(Codec, codecs.StreamReader):
  41.     
  42.     def __init__(self, stream, errors = 'strict'):
  43.         self.bom_read = 0
  44.         codecs.StreamReader.__init__(self, stream, errors)
  45.  
  46.     
  47.     def read(self, size = -1):
  48.         if not (self.bom_read):
  49.             signature = self.stream.read(2)
  50.             if signature == codecs.BOM_BE:
  51.                 self.decode = codecs.utf_16_be_decode
  52.             elif signature == codecs.BOM_LE:
  53.                 self.decode = codecs.utf_16_le_decode
  54.             else:
  55.                 raise UnicodeError, 'UTF-16 stream does not start with BOM'
  56.             if size > 2:
  57.                 size -= 2
  58.             elif size >= 0:
  59.                 size = 0
  60.             
  61.             self.bom_read = 1
  62.         
  63.         return codecs.StreamReader.read(self, size)
  64.  
  65.     
  66.     def readline(self, size = None):
  67.         raise NotImplementedError, '.readline() is not implemented for UTF-16'
  68.  
  69.  
  70.  
  71. def getregentry():
  72.     return (Codec.encode, Codec.decode, StreamReader, StreamWriter)
  73.  
  74.